package com.ruoyi.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.domain.BasisUav;
import com.ruoyi.domain.BasisUavTable;
import com.ruoyi.dto.BasisLoadingUavCamp;
import org.apache.ibatis.annotations.Param;

/**
 * 无人机Service接口
 * 
 * @author wangzebing
 * @date 2025-05-24
 */
public interface IBasisUavService
{
    /**
     * 查询无人机
     * 
     * @param uavId 无人机主键
     * @return 无人机
     */
    public BasisUav selectBasisUavByUavId(Long uavId);

    /**
     * 查询无人机列表
     * 
     * @param basisUav 无人机
     * @return 无人机集合
     */
    public List<BasisUav> selectBasisUavList(BasisUav basisUav);

    /**
     * 新增无人机
     * 
     * @param basisUav 无人机
     * @return 结果
     */
    public int insertBasisUav(BasisUav basisUav);

    /**
     * 修改无人机
     * 
     * @param basisUav 无人机
     * @return 结果
     */
    public int updateBasisUav(BasisUav basisUav);

    /**
     * 批量删除无人机
     * 
     * @param uavIds 需要删除的无人机主键集合
     * @return 结果
     */
    public int deleteBasisUavByUavIds(Long[] uavIds);

    /**
     * 删除无人机信息
     * 
     * @param uavId 无人机主键
     * @return 结果
     */
    public int deleteBasisUavByUavId(Long uavId);


    boolean addBasisLoadingUavCamp(BasisLoadingUavCamp basisLoadingUavCamp);

    boolean updateBasisLoadingUavCamp(BasisLoadingUavCamp basisLoadingUavCamp);

    boolean updateBasisLoadingUavCampDt(BasisLoadingUavCamp basisLoadingUavCamp);


    boolean delBasisLoadingUavCamp(String loadingId, Integer uavId);

    Map<String,Object> fidnByBasisLoadingUavCamp(String loadingId, Integer uavId);

    Map<String,Object> fidnByBasisLoadingUavCampDT(String loadingId, Integer uavId);

    //根据案例和阵营查询无人机
    public List<BasisLoadingUavCamp> findByLoadingIdAndCampId(String loadingId, Integer campId,Integer positionId);

    public List<BasisLoadingUavCamp> findByLoadingIdAndCampId2(String loadingId, Integer campId);

    //根据案例id查询 没有跟当前案例相关联的目标
    public List<BasisUav> selectBasisUavLoading(String loadingId);


    public List<BasisUav> selectBasisUavLoadingDT(String loadingId);
    //查询导调角色下的目标
    public List<BasisLoadingUavCamp> findByLoadingIdAndCampIdDT( String loadingId,Integer campId,Integer positionId);


}
